A variety of computer-based systems for facilitating communications among users have been developed. For example, electronic mail (email) systems allow users to send messages to one or more specified recipients. The specified recipients of a message may retrieve and read the message at any time, and may respond to the message or forward it to other users. Email systems typically provide the ability to create mailing lists to facilitate communication among groups of users having common roles or interests. News services (also referred to as xe2x80x9cclipping servicesxe2x80x9d) deliver to users selected news articles covering topics of interest to the users. Such news services typically select which news articles to deliver to users by comparing words in the news articles to keywords provided by the users. Electronic bulletin board systems allow groups of users to create electronic bulletin boards, also referred to as xe2x80x9cnewsgroups,xe2x80x9d that typically correspond to a particular topic. Any user who subscribes to a newsgroup may post messages to the newsgroup and read messages posted to the newsgroup by other subscribed users. Electronic xe2x80x9cchat roomsxe2x80x9d enable users to communicate with each other in real-time by entering messages that are immediately communicated to and viewable by other users in the same chat room. The public Internet is increasingly being used as a medium for these and other forms of electronic communication.
One problem associated with such communication systems is that of xe2x80x9cinformation overload.xe2x80x9d Users of such systems often find themselves presented with such a large volume of information (e.g., email messages or newsgroup postings) that they find it difficult or impossible to manually examine all of the information in order to identify the information that is relevant to them. As a result, users may fail to receive or read information that is relevant to them and to engage in potentially fruitful communications. Similarly, users who transmit information using such communications systems may fail to reach desirable recipients because such recipients are unable to separate relevant from irrelevant messages.
A variety of automated and semi-automated systems have been developed to help users organize and filter information received using electronic communications systems. For example, some systems attempt to deliver messages only to users to whom the messages are relevant. Such systems typically allow each user to define a set of preferences that indicate the user""s interests. Such preferences may, for example, include keywords that describe the user""s interests. Typically, such systems store incoming messages in a database as they are received by the system. When a certain number of messages have been received, the system performs a query on the database using each user""s preferences. Each query typically produces scores for the messages in the database indicating the relative relevancies of the messages. The system uses these scores to determine which messages stored in the database are sufficiently relevant to forward to the corresponding user.
One problem with such conventional systems is that they require that multiple messages be received by the system before the relevancies of the messages can be determined. This requirement delays the delivery of incoming messages to users of the system. Such systems may therefore not be appropriate for environments in which communications need to be delivered quickly, such as enterprise email systems.
Another problem with such conventional systems is that their performance degrades as the number of system users increases. As described above, such systems perform a database query for each user of the system. The number of queries that must be performed therefore increases in proportion to the number of system users. Performance of such queries on large databases of messages can impose a significant load on the system and further delay the transmission of communications to appropriate recipients.
A further problem with such conventional systems is that users of such systems have limited control over the number and frequency of messages they receive from the system. Defining user preferences using keywords primarily serves to define the subject matter in which the user is interested, but does not place any bounds on the number or frequency of messages that the system will deliver to the user. As a result, users of such systems may experience xe2x80x9cdownxe2x80x9d times during which they are ready and willing to receive, read, and respond to messages but during which they receive few messages or none at all. Similarly, users of such systems may be overloaded by a flood of messages that match the users"" preferences. Such systems, therefore, fail to address a primary aspect of the problem of information overload.
In one aspect, a system is provided for evaluating the relevancy of an incoming message to a plurality of users. The system includes a message feature database including records descriptive of features of a plurality of messages, a similarity engine having an input to receive the incoming message and an output to deliver similarity scores indicating similarities of the incoming message to the features, a user profiles database including profiles of the plurality of users, the profiles including information descriptive of the plurality of users"" preferences for the features, and a relevancy engine having a first input to receive the similarity scores, a second input to receive the profiles in the user profiles database, and an output to deliver relevancy scores indicating relevancies of the incoming message to the plurality of users. The user profiles database may include a preference matrix indicating preferences of the plurality of users for the features, and wherein the relevancy engine is adapted to generate the relevancy scores by performing vector multiplication of a vector representing the similarity scores by vectors in the preference matrix.
The system may include a delivery mechanism having a first input to receive the incoming message, a second input to receive the relevancy scores, a third input to receive the profiles of the plurality of users, and an output to deliver to the user message information based on the incoming message, the relevancy scores, and the profiles of the plurality of users. The user profiles may include relevancy thresholds for the plurality of users, and the delivery mechanism may include a relevancy thresholder to compare to the relevancy scores to the relevancy thresholds to generate relevancy determinations indicating whether the incoming message is sufficiently relevant to the plurality of users. The user profiles database may include a maximum number of users to whom the message information is to be delivered, and wherein the delivery mechanism is configured to deliver the message information to no greater than the maximum number of users. The user profiles database may include relevancy thresholds for a plurality of users, and the delivery mechanism may be configured to compare the relevancy scores to the relevancy thresholds and to deliver the message information only to those users whose relevancy scores satisfy the corresponding relevancy thresholds. The delivery mechanism may be configured to deliver the message information to at least some of the plurality of users as an electronic mail message. The delivery mechanism may be configured to update a message display using the message information. The system may further include means for modifying the user profiles database based on user feedback received from a user.
In another aspect, a method is provided for evaluating the relevancy of an incoming message to a plurality of users. The method includes steps of generating similarity scores indicating similarities of the incoming message to features of a plurality of messages; and generating relevancy scores for the plurality of users indicating relevancies of the incoming message to the plurality of users based on the similarity scores and a plurality of user profiles including information descriptive of the plurality of users"" preferences for the features. The step of generating the relevancy scores may include steps of querying a message feature database using the incoming message to develop search results, the message feature database including records descriptive of features of a plurality of messages; and generating the relevancy scores based on the search results. The user profiles may include a preference matrix indicating preferences of the plurality of users for the features, and the step of generating the relevancy scores may, for example, include a step of generating the relevancy scores by performing vector multiplication of a vector representing the similarity scores by vectors in the preference matrix. The relevancy scores may, however, be generated in any manner. The method may further include a step of providing the relevancy scores to a delivery mechanism to deliver message information derived from the incoming message, the relevancy scores, and the profiles of the plurality of users to at least some of the plurality of users.
The method may further include steps of receiving user feedback from one of the plurality of users; and modifying the user""s profile in the user profiles database based on the user feedback. The step of receiving user feedback may include a step of receiving an indication from the user that the user has expressed a positive preference for the message information. The step of receiving user feedback may include a step of receiving an indication from the user that the user has expressed a negative preference for the message information.
The method may further include steps of developing message information based on the incoming message, the relevancy scores, and the profiles of the plurality of users to the plurality of users, and delivering the message information to at least some of the plurality of users. The user profiles database may include relevancy thresholds for the plurality of users, the step of developing the message information may include a step of comparing the relevancy scores to the relevancy thresholds; and the step of delivering the message information may include a step of delivering the message information only to those users whose relevancy scores satisfy the corresponding relevancy thresholds. The user profiles database may include a maximum number of users to whom the message information is to be delivered, and the step of delivering the message information may include a step of delivering the message information to no greater than the maximum number of users. The step of delivering the message information may include a step of sending the message information to the at least some of the plurality of users as an electronic mail message, or a step of updating a message display using the message information.
In other aspects, a system and a computer-readable medium are provided for evaluating the relevancy of an incoming message to a plurality of users.
Other aspects of the invention include the various combinations of one or more of the foregoing aspects of the invention, as well as the combinations of one or more of the various embodiments thereof as found in the following detailed description or as may be derived therefrom. The foregoing aspects of the invention also have corresponding computer-implemented processes which are also aspects of the present invention. Other embodiments of the present invention may be derived by those of ordinary skill in the art both from the following detailed description of a particular embodiment of the invention and from the description and particular embodiment of a system in accordance with the invention.